package com.aoxin.mapper;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;

import com.aoxin.model.SlfUserCourseCondition;

public interface SlfUserCourseConditionMapper {
    //查询所有
    List<SlfUserCourseCondition> getSlfUserCourseConditionMapper(SlfUserCourseCondition slfUserCourseCondition);
    int deleteByPrimaryKey(Long id);

    int insert(SlfUserCourseCondition record);

    int insertSelective(SlfUserCourseCondition record);

    SlfUserCourseCondition selectByPrimaryKey(Long id);

    int updateByPrimaryKeySelective(SlfUserCourseCondition record);

    int updateByPrimaryKey(SlfUserCourseCondition record);
    
    //判断该孩子下面的课程包是否安排
    int getIsChildrenCoursePages(Map<String,Object> map);
    
    //查出所有课程集合中的小孩ID
    List<String> existsChlidrenId(Integer CoursePageId);
    
    //改变小孩课程状态
    void updateCourseFlag(String employTime);
    
    //改变小孩课程状态
    List<SlfUserCourseCondition> courseFlagOnrOrFour(String employTime);
    
    //家里搞，判断这个教室这个孩子是否是有这个课程
    SlfUserCourseCondition IsexistsCourse(Map<String,Object> map);
    
    //C类占用课程(定时器自动排课(类似于插班生))
    void insertEmployChildrenTextC(Map<String,Object> map);
    
    //删除临时C类临时的用户
    void deleteEmployChildrenTextC(Integer id);
    
    //找到所有购买的C类课程包(课程)的用户
    List<Integer> getCoursePackageSale();
    

    
    //找到最近该班级开课这些人的自增ID
    List<Integer> getUserCourseConditionIdMapper(Integer classroomId);
    
    //交换班级操作
    void updateUserCourseConditionMapper(Map<String,Object> map);
    
    //找出取消但未安排排课的人 
    List<SlfUserCourseCondition> getNeedLessonAgainPeople();
    
    //修改补课人员状态
    void updateFlagBk(Map<String,Object> map);
    
    //判断该人是否存在(补课)数据
    Integer IsFlagBk(Map<String,Object> map);
    
    //存在补课课程的人
    void updateChangeClassBk(Map<String,Object> map);
    
    //找到该插入班级的上课时间
    String getChangeClassEmployTimeBk(Map<String,Object> map);
    
    //C类课程的取消
    Integer IsExistconditionC(Map<String,Object> map);
    
    //C类找到该孩子的课程(主题取消预约)
    SlfUserCourseCondition getCancelUserCourse(Map<String,Object> map);
    
    //C类空闲教室(批量删除已开班的用户)
    void batchDelete(Map<String,Object> map);
    
    //找到B类课程(在上课的B类课程)
    List<SlfUserCourseCondition> getClasslesssonPage();
    
    //查看是否开课
    SlfUserCourseCondition IsStartsWeek(Map<String,Object> map);
    
    //查出B类课程
    List<SlfUserCourseCondition> getCourseConditionTime(Map<String,Object> map);
    
    List<SlfUserCourseCondition> getCourseConditionTimeClassroom(Map<String,Object> map);
    
    //----------------------------------------临时表----------------------------------------
    void insertTemporaryStorageTable(Map<String,Object> map);
    
    //查询所有状态为上课状态或未上课状态的课程(手动排课的课程)
    List<SlfUserCourseCondition> queryCourseScheduleMapper(@Param("classId") Integer classId);
    
    //重置课表
    void resettingMapper(Map<String,Object> map);
    
    //退班
    void retireMapper(Map<String,Object> map);
    
}